package com.lnj.community.service.Impl;

import com.lnj.community.service.RedisTokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;

@Service
public class RedisTokenServiceImpl implements RedisTokenService {
    @Autowired
    private RedisTemplate redisTemplate;

    /**
     * 将令牌添加到 Redis 黑名单，并设置过期时间
     * @param token 要添加到黑名单的令牌
     * @param expiration 令牌的剩余过期时间（单位：秒）
     */
    @Override
    public void addToBlacklist(String token, long expiration) {
        redisTemplate.opsForValue().set(token, "blacklisted", expiration, TimeUnit.SECONDS);
    }

    /**
     * 检查令牌是否在 Redis 黑名单中
     * @param token 要检查的令牌
     * @return 如果令牌在黑名单中返回 true，否则返回 false
     */
    @Override
    public boolean isBlacklisted(String token) {
        return Boolean.TRUE.equals(redisTemplate.hasKey(token));
    }
}
